package br.com.swp.campestre.entity;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.SequenceGenerator;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.persistence.Version;

import org.jboss.seam.annotations.AutoCreate;

import br.com.swp.campestre.enumeration.SimNao;
import br.com.swp.campestre.enumeration.StatusParcela;

@Entity
@AutoCreate
@SequenceGenerator(sequenceName="parcelaFinancimentoProprio_seq" ,  name="parcelaFinancimentoProprio_seq" , allocationSize=1)
public class ParcelaFinancimentoProprio implements Serializable
{

    /**
	 * 
	 */
	private static final long serialVersionUID = 6748388684859888325L;
	
	private Long id;
    private Integer version;
	private BigDecimal valor;
	private Date dataVencimento;
	private Integer numBancoChq;
	private Integer numAgenciaChq;
	private Integer numContaChq;
	private Integer numChq;
	//Se cheque for de terceiro
	private SimNao chqTerceiro;
	private String nomeTerceiro;
	private String cpfTerceiro;
	private Venda venda;
	
	private StatusParcela statusParcela;
		
	
    @Id @GeneratedValue(strategy=GenerationType.SEQUENCE , generator="parcelaFinancimentoProprio_seq")	
    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    @Version
    public Integer getVersion() {
        return version;
    }

    private void setVersion(Integer version) {
        this.version = version;
    }

	
	@Override
	public String toString() {
		return id + "";
	}

	public void setVenda(Venda venda) {
		this.venda = venda;
	}
	
	@ManyToOne
	public Venda getVenda() {
		return venda;
	}


	public void setValor(BigDecimal valor) {
		this.valor = valor;
	}

	public BigDecimal getValor() {
		return valor;
	}

	@Temporal(TemporalType.DATE)
	public Date getDataVencimento() {
		return dataVencimento;
	}

	public void setDataVencimento(Date dataVencimento) {
		this.dataVencimento = dataVencimento;
	}

	@Column(name="num_banco_chq")
	public Integer getNumBancoChq() {
		return numBancoChq;
	}

	public void setNumBancoChq(Integer numBancoChq) {
		this.numBancoChq = numBancoChq;
	}

	@Column(name="num_agencia_chq")
	public Integer getNumAgenciaChq() {
		return numAgenciaChq;
	}

	public void setNumAgenciaChq(Integer numAgenciaChq) {
		this.numAgenciaChq = numAgenciaChq;
	}

	@Column(name="num_conta_chq")
	public Integer getNumContaChq() {
		return numContaChq;
	}

	public void setNumContaChq(Integer numContaChq) {
		this.numContaChq = numContaChq;
	}

	
	@Column(name="num_chq")
	public Integer getNumChq() {
		return numChq;
	}

	public void setNumChq(Integer numChq) {
		this.numChq = numChq;
	}

	@Enumerated(EnumType.STRING)
	@Column(name="chq_terceiro")
	public SimNao getChqTerceiro() {
		return chqTerceiro;
	}

	public void setChqTerceiro(SimNao chqTerceiro) {
		this.chqTerceiro = chqTerceiro;
	}

	@Column(name="nome_terceiro")
	public String getNomeTerceiro() {
		return nomeTerceiro;
	}

	public void setNomeTerceiro(String nomeTerceiro) {
		this.nomeTerceiro = nomeTerceiro;
	}

	@Column(name="cpf_terceiro")
	public String getCpfTerceiro() {
		return cpfTerceiro;
	}

	public void setCpfTerceiro(String cpfTerceiro) {
		this.cpfTerceiro = cpfTerceiro;
	}

	@Enumerated(EnumType.STRING)
	public StatusParcela getStatusParcela() {
		return statusParcela;
	}

	public void setStatusParcela(StatusParcela statusParcela) {
		this.statusParcela = statusParcela;
	}
	
}
